// 引入express
const express = require('express');
// 创建服务器应用
const app = express();  //http creatSever

// 客户端发送请求 返回响应
// 路由：指定客户端的请求方式 如何响应客户端的请求

// 路由
// 组成：
// 请求方式 get post
// 请求路径path 必须以/开头 
// 回调函数
app.get('/xing', (req, res) => {
    // console.log(req);
    console.log(req.query);//{ name: 'tom', age: '18' }
    // get 请求的参数在路径后面 ？key=value&key=value query参数
    // console.log(req.url);
    res.end('中秋节过完了');
})

// params参数
// http://localhost:3000/xue/5
// 占位符
app.get('/xue/:id/:sex/:age', (req, res) => {
    // console.log(req.url);
    console.log(req.params);//{id:"5"}  { id: '5', sex: 'nv', age: '18' }
    // 获取的是get请求的params参数的值
    // req.body 获取的post请求的请求体，直接获取获取不到，需要中间件
    // req.cookie 获取cookie
    // req.headers 获取请求头
    console.log(req.headers);

    res.end('im a girl');
})

// 二级路由(子路由)
app.get('/test/test1',(req,res)=>{
    console.log(req.query);
    res.end('xxx');
})

app.get('/testres',(req,res)=>{
    // res.end 返回响应 快速返回响应
    // res.end('中秋节快乐');

    // 返回响应 根据内容自己设置对应的响应头
    // res.send('中秋节快乐')

    // 返回响应 浏览器自动下载指定文件到本地
    // res.download('./public/html/index.html');

    // 返回响应 在浏览器中自动打开指定的文件
    // 注意在sendFile中不能使用相对路径，使用绝对路径
    res.sendFile(__dirname+'/public/html/index.html');
})

// 监听端口
app.listen(3000, err => {
    if (!err) console.log('服务器已启动');
    else console.log(err);
})

/*
1、在码云上创建仓库
2、将仓库克隆到本地
3、npm init 创建package.json
4、创建 git忽略文件 .gitiginore
5、下载express npm i express -S
6、创建入口文件index.js (main.js app.js)
7、文件内部的服务器创建
    ①引入express模块
    ②创建app应用
    ③监听端口
    ④路由
8、运行服务器
    node 入口文件的名字

    服务器内容更改 服务器重新启动

9、配置nodemon 服务器内容更改，自动重新启动
    ①下载nodemon  npm i -D nodemon
    ②在package.josn文件中进行配置
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "dev":"nodemon ./index.js"   //nodemon后面跟的文件名字是入口文件的名字
    },

*/